package com.biostime.terminal.util;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jdom.Element;

public class Cell extends BaseElement {

	/**
	 * 
	 */
	private static final long serialVersionUID = -3875795689313983088L;

	private static Log log = LogFactory.getLog(Cell.class);

	private String name = "";

	private String value = "";

	/**
	 * 不传入参数的构造函数，主要给digester构造XML对象时使用。
	 */
	public Cell() {

	}

	/**
	 * 有参数的构造函数，直接生成Cell对象时使用。
	 * 
	 * @param n
	 *            名字属性
	 * @param v
	 *            值属性。若为空，则赋予空字符串。
	 */
	public Cell(String n, Object v) {
		name = n;
		if (v == null) {
			v = "";
		}
		value = v.toString();
	}

	/**
	 * @return Returns the name.
	 */
	public String getName() {
		return name;
	}

	/**
	 * @param name
	 *            The name to set.
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * @return Returns the value.
	 */
	public String getValue() {
		return value;
	}

	/**
	 * @param value
	 *            The value to set.
	 */
	public void setValue(String value) {
		this.value = value;
	}

	/**
	 * @return 返回当前XML节点的Element对象
	 */
	public Element toElement() {
		Element cell = new Element("cell");
		cell.setAttribute("name", getName());
		cell.setAttribute("value", getValue());
		return cell;
	}

	/**
	 * @return 返回当前XML节点的String对象，用于测试验证
	 */
	public String toString() {
		log.debug("[cell] name: " + getName() + " value: " + getValue());
		return XMLWriter.writeString(toElement());
	}
}
